#pragma once
#include <vector>
#include <string>
#include <fstream>
#include <sstream>
#include <regex>
#include <iomanip>
#include <limits>
#include <eigen/Eigen/Dense>
// 传递函数（z^{-1} 形式）
// K(z) = (num[0] + num[1] z^{-1} + ... ) / (den[0] + den[1] z^{-1} + ...)
// 一般建议 den[0] = 1
struct TF {
  std::vector<double> num;
  std::vector<double> den;
};

struct StateSpace { Eigen::MatrixXd A,B,C,D; int nx()const{return A.rows();} int nu()const{return B.cols();} int ny()const{return C.rows();}};
